package com.atguigu.campusintelligentassistantsystem.service;

import com.atguigu.campusintelligentassistantsystem.entity.DormRepair;
import com.atguigu.campusintelligentassistantsystem.repository.DormRepairRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;

@Service
public class DormRepairService {

    @Autowired
    private DormRepairRepository dormRepairRepository;

    /**
     * 提交报修申请
     * @param dormRepair 报修信息
     * @return 保存后的报修单
     */
    public DormRepair submitRepairRequest(DormRepair dormRepair) {
        dormRepair.setStatus("pending"); // 默认状态为待处理
        return dormRepairRepository.save(dormRepair);
    }

    /**
     * 根据ID获取报修单
     * @param id 报修单ID
     * @return 报修单信息
     */
    public DormRepair getRepairById(Long id) {
        Optional<DormRepair> repair = dormRepairRepository.findById(id);
        return repair.orElse(null);
    }

    /**
     * 根据学生ID获取报修记录
     * @param studentId 学生ID
     * @return 报修记录列表
     */
    public List<DormRepair> getRepairsByStudentId(Long studentId) {
        return dormRepairRepository.findByStudentId(studentId);
    }

    /**
     * 获取所有报修单
     * @return 报修单列表
     */
    public List<DormRepair> getAllRepairs() {
        return dormRepairRepository.findAll();
    }

    /**
     * 更新报修单状态
     * @param id 报修单ID
     * @param status 状态
     * @return 更新后的报修单
     */
    public DormRepair updateRepairStatus(Long id, String status) {
        Optional<DormRepair> repairOpt = dormRepairRepository.findById(id);
        if (repairOpt.isPresent()) {
            DormRepair repair = repairOpt.get();
            repair.setStatus(status);
            return dormRepairRepository.save(repair);
        }
        return null;
    }

    /**
     * 删除报修单
     * @param id 报修单ID
     */
    public void deleteRepair(Long id) {
        dormRepairRepository.deleteById(id);
    }
}